package com.codedancer.campus.client.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.client.service.bo.dynamic.DynamicPageSearchBo;
import com.codedancer.campus.client.service.bo.dynamic.WhisperPublishBo;
import com.codedancer.campus.client.service.vo.dynamic.DynamicPageVo;
import com.codedancer.campus.client.service.vo.dynamic.DynamicVo;

public interface IDynamicService {

    /**
     * 发布悄悄话
     * @param whisperPublishBo
     */
    void publishWhisper(WhisperPublishBo whisperPublishBo);

    /**
     * 分页查询动态
     * @param dynamicPageSearchBo
     * @return
     */
    IPage<DynamicPageVo> page(DynamicPageSearchBo dynamicPageSearchBo);

    /**
     * 动态详情
     * @param uuid
     * @return
     */
    DynamicVo detail(String uuid);

    /**
     * 查询用户发布的动态
     * @param dynamicPageSearchBo
     * @return
     */
    IPage<DynamicPageVo> page2User(DynamicPageSearchBo dynamicPageSearchBo);

    /**
     * 删除动态
     * @param uuid
     */
    void delete(String uuid);

    /**
     * 分页查询某个圈子下的动态
     * @param dynamicPageSearchBo
     * @return
     */
    IPage<DynamicPageVo> pageByCircleUuid(DynamicPageSearchBo dynamicPageSearchBo);

    /**
     * 开启评论
     * @param uuid
     */
    void openComment(String uuid);

    /**
     * 关闭评论
     * @param uuid
     */
    void closeComment(String uuid);

    /**
     * 修改悄悄话
     * @param whisperPublishBo
     */
    void updateWhisper(WhisperPublishBo whisperPublishBo);

    /**
     * 隐藏
     * @param uuid
     */
    void hide(String uuid);

    /**
     * 显示
     * @param uuid
     */
    void display(String uuid);

    /**
     * 同步自由广场
     * @param uuid
     */
    void syncLibertySquare(String uuid);

    /**
     * 取消同步自由广场
     * @param uuid
     */
    void cancelSyncLibertySquare(String uuid);

    /**
     * 动态点赞
     * @param uuid
     * @param currentLoginUuid
     */
    void kudos(String uuid, String currentLoginUuid);

    /**
     * 取消点赞
     * @param uuid
     * @param currentLoginUuid
     */
    void cancelKudos(String uuid, String currentLoginUuid);

    /**
     * 动态是否点赞
     * @param uuid
     * @param currentLoginUuid
     * @return
     */
    Boolean isKudos(String uuid, String currentLoginUuid);
}
